#ifndef _TEXT2D_H
#define _TEXT2D_H

#include <string>

#include "UIControl.h"
#include "Font.h"
#include "Vector2.h"
#include "Colour.h"
#include "Matrix4.h"
#include "Scene.h"
#include "ResourceManager.h"

#ifdef GALLIUMENGINE_DLL 
#define GALLIUMENGINE_API __declspec( dllexport )
#else
#define GALLIUMENGINE_API __declspec( dllimport )
#endif

namespace GalliumEngine
{

	class Text2D : public UIControl
	{
	private:
		std::string text;
		int fontSize;
		Font *font;
	public:
		GALLIUMENGINE_API Text2D(void);
		GALLIUMENGINE_API Text2D(std::string _id);
		GALLIUMENGINE_API ~Text2D(void);

		GALLIUMENGINE_API void setText(std::string _text);
		GALLIUMENGINE_API void setFont(std::string _fontFile, int _fontSize);

		GALLIUMENGINE_API virtual void initialize(std::string _fontFile, std::string _text, int _fontSize, Vector2 _position, float _depth, Colour _colour);
		GALLIUMENGINE_API virtual void deinitialize();

		GALLIUMENGINE_API virtual void update(float delta);
		GALLIUMENGINE_API virtual void draw();
	};

}

#endif
